#pragma once
#include "Serialize.h"
#include "Macros.h"

class RepProtocol
{
public:

	static char *SerializeMSGType(char *ptr, unsigned char MSGTypes);

	static char *DeserializeMSGType(char *ptr, unsigned char &MSGTypes);

	static char *DeserializeEntryMSG(char *ptr, PlayerMatching &playerInitizeInput);

	static char *SerializeEntryMSG(PlayerMatching &playerInitizeInput, char *in_buffer);

	static char *DeserializeReadyMSG(char *ptr, PlayerReady &playerReady);

	static char *DeserializeControllsMSG(char *ptr, PlayerInput &playerInput);

	static char *SerializeControllsMSG(PlayerInput &playerInput, char *in_buffer);

	static char *SerializeGainControlIDMSG(unsigned char player_id, unsigned short world_id, char *in_buffer);
};

class VoipProtocol
{
public:
	static char *SerializeMSGType(char *ptr, unsigned char MSGTypes);

	static char *DeserializeMSGType(char *ptr, unsigned char &MSGTypes);

	static char *SerializeNoTlKMDify(char *ptr, unsigned char Flag);

	static char *DeserializeNoTlKMDify(char *ptr, unsigned char &Flag);
};
